const http = require('http')
const url = require('url')
const server = http.createServer((request, response) => {
	//一、关于请求：=================================

	// console.log("请求头", request.headers)
	// console.log("协议版本", request.httpVersion)
	// console.log("请求url", request.url)
	// console.log("请求方法", request.method)

	//获取请求体,将request当成一个流，和文件流一样操作
	request.on('data', chunk => {
		let body = ''
		body += chunk
		console.log("请求体", body) //打印请求体
	})
	//获取并解析请求参数（导入url模块）
	//1、使用parse方法
	// const urldata = url.parse(request.url, true) //第二个参数为true表示将请求参数转化为对象
	// console.log('请求路径', urldata.pathname) //pathname不包含请求参数，Path则包含
	// console.log('请求参数wd的值是：', urldata.query.wd)
	// console.log(urldata)
	//2、使用url构造函数参数直接解析
	// const urlInst = new URL('http://localhost:9000/search?wd=巨人?id=12')
	// const urlInst = new URL(request.url, 'http://localhost:9000') //第一个参数是pathname,第二个参数是域名（basename）
	// console.log('pathname:', urlInst.pathname)
	// console.log('参数:', 'wd:', urlInst.searchParams.get('wd'), 'id:', urlInst.searchParams.get('id'))
	// console.log(urlInst)

	//二、关于响应：=================================
	//1、设置相应状态码
	response.statusCode = 401
	//2、设置相应状态描述
	response.statusMessage = 'error in account or password'
	//3、设置响应头
	response.setHeader('content-type', 'application/javascript;charset=utf-8')
	response.setHeader('myheader', 'sgvaera')
	response.setHeader('test', ['a', 'b', 'c']) //设置多个值的头
	//4、写入响应体
	response.write('abadsvad啊大V啊到啊达不到')
	response.write('啊大V啊大V啊东方宝石')
	response.write('发电房八二五二')
	//5、结束响应体，使用end函数，有且必须只有一个
	response.end('I am serve')
})
server.listen(9000, () => {
	console.log('开始监听')
})